class Dog:
    def __init__(self):
        self.name = '李四'  # 公共的属性
        self.__jiao = '汪汪叫'  # 私有属性
        pass

    # 私有方法  __ 方法名  私有方法，只能在类的内部使用，不能再类的外部使用
    def __kanmen(self):
        print(self.name)
        print(self.__jiao)
        print("这个一个私有方法")

    def eat(self, a):
        self.__jiao = a
        self.__kanmen()
        print("吃饭")


d1 = Dog()
d1.eat()
d1.__kanmen()  # 外部无法调用私有方法
print(d1.name)  # 外部调用公共属性
print(d1.__jiao)  # 外部无法调用私有属性
# 什么时候用封装？   不想让别人直接调用自己的属性，
# 我们可以把属性进行封装成私有化， 然后在提供公共方法让其访问
